/**
 * 
 */
package org.pdecodts.yasb.domain;

/**
 * @author philippe decodts
 *
 */
public class Transition {
    
    /**
     * The container business process.
     * A transition always belong to a business process
     */
    private BusinessProcess container;
    
    /**
     * The name of the transition.
     * Tansition names are unique inside the scope of a container.
     * 
     */
    private String name ;
    /**
     * The activity target of the transition.
     */
    private Activity target ; 
    
    /**
     * The activity source of the transition
     */
    private Activity source ;
    
    /**
     * The evaluator of the transition used to verify if the transition
     * can be tranversed or not when an activity is terminated and activity leaving 
     * condition occurs.
     */
    private TransitionEvaluator evaluator ;

    /**
     * @return the container
     */
    public BusinessProcess getContainer() {
        return container;
    }

    /**
     * @param container the container to set
     */
    public void setContainer(BusinessProcess container) {
        this.container = container;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the target
     */
    public Activity getTarget() {
        return target;
    }

    /**
     * @param target the target to set
     */
    public void setTarget(Activity target) {
        this.target = target;
    }

    /**
     * @return the source
     */
    public Activity getSource() {
        return source;
    }

    /**
     * @param source the source to set
     */
    public void setSource(Activity source) {
        this.source = source;
    }

    /**
     * @return the evaluator
     */
    public TransitionEvaluator getEvaluator() {
        return evaluator;
    }

    /**
     * @param evaluator the evaluator to set
     */
    public void setEvaluator(TransitionEvaluator evaluator) {
        this.evaluator = evaluator;
    }
    
    
}
